// noinspection JSUnresolvedReference /** * Field Google Map */ /* global jQuery, document, redux_change, redux, google */ (function ( $ ) { 'use strict'; redux.field_objects = redux.field_objects || {}; redux.field_objects.google_maps = redux.field_objects.google_maps || {}; /* LIBRARY INIT */ redux.field_objects.google_maps.init = function ( selector ) { if ( ! selector ) { selector = $( document ).find( '.redux-group-tab:visible' ).find( '.redux-container-google_maps:visible' ); } $( selector ).each( function ( i ) { let delayRender; const el = $( this ); let parent = el; if ( ! el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ':hidden' ) ) { return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } // Check for delay render, which is useful for calling a map // render after JavaScript load. delayRender = Boolean( el.find( '.redux_framework_google_maps' ).data( 'delay-render' ) ); // API Key button. redux.field_objects.google_maps.clickHandler( el ); // Init our maps. redux.field_objects.google_maps.initMap( el, i, delayRender ); } ); }; /* INIT MAP FUNCTION */ redux.field_objects.google_maps.initMap = async function ( el, idx, delayRender ) { let delayed; let scrollWheel; let streetView; let mapType; let address; let defLat; let defLong; let defaultZoom; let mapOptions; let geocoder; let g_autoComplete; let g_LatLng; let g_map; let noLatLng = false; // Pull the map class. const mapClass = el.find( '.redux_framework_google_maps' ); const containerID = mapClass.attr( 'id' ); const autocomplete = containerID + '_autocomplete'; const canvas = containerID + '_map_canvas'; const canvasId = $( '#' + canvas ); const latitude = containerID + '_latitude'; const longitude = containerID + '_longitude'; // Add map index to data attr. // Why, say we want to use delay_render, // and want to init the map later on. // You'd need the index number in the // event of multiple map instances. // This allows one to retrieve it // later. $( mapClass ).attr( 'data-idx', idx ); if ( true === delayRender ) { return; } // Map has been rendered, no need to process again. if ( $( '#' + containerID ).hasClass( 'rendered' ) ) { return; } // If a map is set to delay render and has been initiated // from another scrip, add the 'render' class so rendering // does not occur. // It messes things up. delayed = Boolean( mapClass.data( 'delay-render' ) ); if ( true === delayed ) { mapClass.addClass( 'rendered' ); } // Create the autocomplete object, restricting the search // to geographical location types. g_autoComplete = await google.maps.importLibrary( 'places' ); g_autoComplete = new google.maps.places.Autocomplete( document.getElementById( autocomplete ), {types: ['geocode']} ); // Data bindings. scrollWheel = Boolean( mapClass.data( 'scroll-wheel' ) ); streetView = Boolean( mapClass.data( 'street-view' ) ); mapType = Boolean( mapClass.data( 'map-type' ) ); address = mapClass.data( 'address' ); address = decodeURIComponent( address ); address = address.trim(); // Set default Lat/lng. defLat = canvasId.data( 'default-lat' ); defLong = canvasId.data( 'default-long' ); defaultZoom = canvasId.data( 'default-zoom' ); // Eval whether to set maps based on lat/lng or address. if ( '' !== address ) { if ( '' === defLat || '' === defLong ) { noLatLng = true; } } else { noLatLng = false; } // Can't have empty values, or the map API will complain. // Set default for the middle of the United States. defLat = defLat ? defLat : 39.11676722061108; defLong = defLong ? defLong : -100.47761000000003; if ( noLatLng ) { // If displaying a map based on an address. geocoder = new google.maps.Geocoder(); // Set up Geocode and pass address. geocoder.geocode( {'address': address}, function ( results, status ) { let latitude; let longitude; // Function results. if ( status === google.maps.GeocoderStatus.OK ) { // A good address was passed. g_LatLng = results[0].geometry.location; // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); // Get and set lat/long data. latitude = el.find( '#' + containerID + '_latitude' ); latitude.val( results[0].geometry.location.lat() ); longitude = el.find( '#' + containerID + '_longitude' ); longitude.val( results[0].geometry.location.lng() ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } else { // No data found, alert the user. alert( 'Geocode was not successful for the following reason: ' + status ); } } ); } else { // If displaying map based on an lat/lng. g_LatLng = new google.maps.LatLng( defLat, defLong ); // Set map options. mapOptions = { center: g_LatLng, zoom: defaultZoom, // Start off far unless an item is selected, set by php. streetViewControl: streetView, mapTypeControl: mapType, scrollwheel: scrollWheel, mapTypeControlOptions: { style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR, position: google.maps.ControlPosition.LEFT_BOTTOM }, mapId: 'REDUX_GOOGLE_MAPS', }; // Create the map. g_map = new google.maps.Map( document.getElementById( canvas ), mapOptions ); redux.field_objects.google_maps.renderControls( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ); } }; redux.field_objects.google_maps.renderControls = function ( el, latitude, longitude, g_autoComplete, g_map, autocomplete, mapClass, g_LatLng, containerID ) { let markerTooltip; let infoWindow; let g_marker; let geoAlert = mapClass.data( 'geo-alert' ); // Get HTML. const input = document.getElementById( autocomplete ); // Set objects into the map. g_map.controls[google.maps.ControlPosition.TOP_LEFT].push( input ); // Bind objects to the map. g_autoComplete = new google.maps.places.Autocomplete( input ); g_autoComplete.bindTo( 'bounds', g_map ); // Get the marker tooltip data. markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Create infoWindow. infoWindow = new google.maps.InfoWindow(); // Create marker. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), draggable: true, title: markerTooltip, animation: google.maps.Animation.DROP } ); geoAlert = decodeURIComponent( geoAlert ); // Place change. google.maps.event.addListener( g_autoComplete, 'place_changed', function () { let place; let address; let markerTooltip; infoWindow.close(); // Get place data. place = g_autoComplete.getPlace(); // Display alert if something went wrong. if ( ! place.geometry ) { window.alert( geoAlert ); return; } console.log( place.geometry.viewport ); // If the place has a geometry, then present it on a map. if ( place.geometry.viewport ) { g_map.fitBounds( place.geometry.viewport ); } else { g_map.setCenter( place.geometry.location ); g_map.setZoom( 17 ); // Why 17? Because it looks good. } markerTooltip = mapClass.data( 'marker-tooltip' ); markerTooltip = decodeURIComponent( markerTooltip ); // Set the marker icon. g_marker = new google.maps.Marker( { position: g_LatLng, map: g_map, anchorPoint: new google.maps.Point( 0, - 29 ), title: markerTooltip, clickable: true, draggable: true, animation: google.maps.Animation.DROP } ); // Set marker position and display. g_marker.setPosition( place.geometry.location ); g_marker.setVisible( true ); // Form array of address components. address = ''; if ( place.address_components ) { address = [( place.address_components[0] && place.address_components[0].short_name || '' ), ( place.address_components[1] && place.address_components[1].short_name || '' ), ( place.address_components[2] && place.address_components[2].short_name || '' )].join( ' ' ); } // Set the default marker info window with address data. infoWindow.setContent( '
' + place.name + '
' + address ); infoWindow.open( g_map, g_marker ); // Run Geolocation. redux.field_objects.google_maps.geoLocate( g_autoComplete ); // Fill in address inputs. redux.field_objects.google_maps.fillInAddress( el, latitude, longitude, g_autoComplete ); } ); // Marker drag. google.maps.event.addListener( g_marker, 'drag', function ( event ) { document.getElementById( latitude ).value = event.latLng.lat(); document.getElementById( longitude ).value = event.latLng.lng(); } ); // End marker drag. google.maps.event.addListener( g_marker, 'dragend', function () { redux_change( el.find( '.redux_framework_google_maps' ) ); } ); // Zoom Changed. g_map.addListener( 'zoom_changed', function () { el.find( '.google_m_zoom_input' ).val( g_map.getZoom() ); } ); // Marker Info Window. infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener( g_marker, 'click', function () { const marker_info = containerID + '_marker_info'; const infoValue = document.getElementById( marker_info ).value; if ( '' !== infoValue ) { infoWindow.setContent( infoValue ); infoWindow.open( g_map, g_marker ); } } ); }; /* FILL IN ADDRESS FUNCTION */ redux.field_objects.google_maps.fillInAddress = function ( el, latitude, longitude, g_autoComplete ) { // Set variables. const containerID = el.find( '.redux_framework_google_maps' ).attr( 'id' ); // What if someone only wants city, or state, ect... // gotta do it this way to check for the address! // Need to check each of the returned components to see what is returned. const componentForm = { street_number: 'short_name', route: 'long_name', locality: 'long_name', administrative_area_level_1: 'short_name', country: 'long_name', postal_code: 'short_name' }; // Get the place details from the autocomplete object. const place = g_autoComplete.getPlace(); let component; let i; let addressType; let _d_addressType; let val; let len; document.getElementById( latitude ).value = place.geometry.location.lat(); document.getElementById( longitude ).value = place.geometry.location.lng(); for ( component in componentForm ) { if ( componentForm.hasOwnProperty( component ) ) { // Push in the dynamic form element ID again. component = containerID + '_' + component; // Assign to proper place. document.getElementById( component ).value = ''; document.getElementById( component ).disabled = false; } } // Get each component of the address from the place details // and fill the corresponding field on the form. len = place.address_components.length; for ( i = 0; i < len; i += 1 ) { addressType = place.address_components[i].types[0]; if ( componentForm[addressType] ) { // Push in the dynamic form element ID again. _d_addressType = containerID + '_' + addressType; // Get the original. val = place.address_components[i][componentForm[addressType]]; // Assign to proper place. document.getElementById( _d_addressType ).value = val; } } }; redux.field_objects.google_maps.geoLocate = function ( g_autoComplete ) { if ( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function ( position ) { const geolocation = new google.maps.LatLng( position.coords.latitude, position.coords.longitude ); const circle = new google.maps.Circle( { center: geolocation, radius: position.coords.accuracy } ); g_autoComplete.setBounds( circle.getBounds() ); } ); } }; /* API BUTTON CLICK HANDLER */ redux.field_objects.google_maps.clickHandler = function ( el ) { // Find the API Key button and react on click. el.find( '.google_m_api_key_button' ).on( 'click', function () { // Find message wrapper. const wrapper = el.find( '.google_m_api_key_wrapper' ); if ( wrapper.is( ':visible' ) ) { // If the wrapper is visible, close it. wrapper.slideUp( 'fast', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } else { // If the wrapper is visible, open it. wrapper.slideDown( 'medium', function () { el.find( '#google_m_api_key_input' ).trigger( 'focus' ); } ); } } ); el.find( '.google_m_autocomplete' ).on( 'keypress', function ( e ) { if ( 13 === e.keyCode ) { e.preventDefault(); } } ); // Auto select autocomplete contents, // since Google doesn't do this inherently. el.find( '.google_m_autocomplete' ).on( 'click', function ( e ) { $( this ).trigger( 'focus' ); $( this ).trigger( 'select' ); e.preventDefault(); } ); }; } )( jQuery ); Platin Casino App herunterladen: Genießen Sie Online-Casino-Spiele in Deutschland – Orchid Group
Warning: Undefined variable $encoded_url in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Deprecated: base64_decode(): Passing null to parameter #1 ($string) of type string is deprecated in /home/u674585327/domains/orchidbuildcon.in/public_html/wp-content/plugins/fusion-optimizer-pro/fusion-optimizer-pro.php on line 54

Platin Casino App herunterladen: Genießen Sie Online-Casino-Spiele in Deutschland

Platin Casino App herunterladen: Die besten Online-Casino-Spiele in Deutschland erleben

Lust auf die besten Online-Casino-Spiele in Deutschland? Dann sollten Sie die Platin Casino App herunterladen! Mit der App haben Sie jederzeit und überall Zugang zu einer riesigen Auswahl an Spielen. Egal, ob Sie Slots, Tischspiele oder Live-Casino-Spiele bevorzugen, bei Platin Casino werden Sie fündig. Die App ist einfach zu bedienen und bietet eine sichere und zuverlässige Spielumgebung. Darüber hinaus können Sie als Neukunde von einem attraktiven Willkommensbonus profitieren. Laden Sie die Platin Casino App noch heute herunter und erleben Sie das beste Online-Casino-Erlebnis in Deutschland!

Entdecken Sie die Welt des Online-Glücksspiels mit der Platin Casino App in Deutschland

Entdecken Sie die faszinierende Welt des Online-Glücksspiels in Deutschland mit der Platin Casino App. Genießen Sie die besten Casino-Spiele wie Slots, Roulette, Blackjack und Poker bequem von zu Hause aus oder unterwegs. Die Platin Casino App bietet Ihnen ein unvergleichliches Spielerlebnis mit hochwertigen Grafiken und realistischen Soundeffekten.
Mit einer riesigen Auswahl an Spielen von renommierten Softwareanbietern wie NetEnt, Microgaming und Play’n GO ist für jeden Geschmack etwas dabei. Zudem erwarten Sie regelmäßige Bonusaktionen und ein VIP-Programm, das speziell auf deutsche Spieler zugeschnitten ist.
Die Platin Casino App ist sicher und zuverlässig, da sie von der Malta Gaming Authority lizenziert und reguliert wird. Darüber hinaus werden Ihre Daten und Transaktionen durch eine moderne SSL-Verschlüsselungstechnologie geschützt.
Probieren Sie noch heute die Platin Casino App aus und lassen Sie sich von der Welt des Online-Glücksspiels in Deutschland begeistern. Egal, ob Sie ein erfahrener Spieler oder ein Neuling sind, hier werden Sie sich wie zu Hause fühlen.
Laden Sie einfach die App herunter, registrieren Sie sich und machen Sie Ihre erste Einzahlung, um Ihren Willkommensbonus zu erhalten. Los geht’s!

Jetzt die Platin Casino App herunterladen und von unterwegs in Deutschland spielen

Sind Sie auf der Suche nach einer zuverlässigen und unterhaltsamen Casino-App in Deutschland? Dann sollten Sie sich die Platin Casino App herunterladen! Mit dieser App können Sie jederzeit und überall spielen, egal wo Sie sich befinden. Hier sind 8 Gründe, warum Sie die Platin Casino App heute noch herunterladen sollten:
1. Genießen Sie eine riesige Auswahl an Spielen, darunter Slots, Tischspiele und Live-Casino-Spiele.
2. Profitieren Sie von exklusiven Angeboten und Boni, die nur in der App verfügbar sind.
3. Nutzen Sie die bequeme und sichere Einzahlungsoptionen, um schnell und einfach Guthaben auf Ihr Konto zu laden.
4. Spielen Sie unterwegs oder zu Hause auf Ihrem Smartphone oder Tablet.
5. Erleben Sie eine benutzerfreundliche und intuitive Oberfläche, die es Ihnen leicht macht, Ihre Lieblingsspiele zu finden und zu spielen.
6. Verfolgen Sie Ihre Spielaktivitäten und Ihr Konto mit Echtzeit-Updates und Benachrichtigungen.
7. Holen Sie sich Hilfe und Unterstützung, wann und wo Sie sie benötigen, mit dem 24/7 Kundensupport.
8. Vertrauen Sie auf die Sicherheit und Zuverlässigkeit von Platin Casino, einem lizenzierten und regulierten Online-Casino.
Laden Sie jetzt die Platin Casino App herunter und spielen Sie noch heute!

Sichern Sie sich exklusive Boni mit der Platin Casino App in Deutschland

Besuchen Sie das Platin Casino in Deutschland und sichern Sie sich exklusive Boni mit der Casino App. Steigern Sie Ihr Spielerlebnis mit Bonusangeboten, die nur für Nutzer der App verfügbar sind. Entdecken Sie eine große Auswahl an Spielen, darunter Slots, Tischspiele und Live Casino. Laden Sie die App noch heute herunter und profitieren Sie von den Vorteilen. Melden Sie sich an und erhalten Sie einen Willkommensbonus. Spielen Sie unterwegs oder zu Hause und nutzen Sie die Chance auf hohe Gewinne. Die Platin Casino App ist Ihr Ticket zu exklusiven Boni in Deutschland. Laden Sie sie noch heute herunter und starten Sie Ihr Abenteuer.

Spielen Sie Ihre Lieblings-Casino-Spiele jederzeit und überall mit der Platin Casino App in Deutschland

Möchten Sie Ihre Lieblings-Casino-Spiele jederzeit und überall in Deutschland spielen? Dann ist die Platin Casino App die perfekte Lösung für Sie! Mit der App haben Sie Zugang zu einer riesigen Auswahl an Spielen, darunter Slots, Tischspiele und Live-Casino-Spiele. Genießen Sie die erstklassige Grafik und den Sound auf Ihrem Smartphone oder Tablet.Die Platin Casino App ist einfach zu bedienen und bietet eine sichere und zuverlässige Spielumgebung. Egal, ob Sie ein erfahrener Spieler oder ein Anfänger sind, Sie werden die Vorteile der App zu schätzen wissen.
Laden Sie die Platin Casino App noch heute herunter und erleben Sie das beste Casino-Erlebnis, wann und wo immer Sie möchten. Spielen Sie Ihre Lieblings-Casino-Spiele jederzeit und überall in Deutschland mit der Platin Casino App!

Vor kurzem habe ich die Platin Casino App heruntergeladen und ich muss sagen, ich bin sehr beeindruckt! Der Download und die Installation waren ein Kinderspiel und das Spielangebot ist wirklich umwerfend. Mein Favorit ist das Roulette-Spiel, es macht mir so viel Spaß, von überall aus zu spielen.

Ich, Hans, 45 Jahre alt, kann die Platin Casino App wirklich platincasino bonus code jedem empfehlen, der gerne online spielt. Die Grafik ist toll, die Auswahl an Spielen ist riesig und der Kundenservice ist immer zur Stelle, wenn man ihn braucht.

—————————————————————————————————————————————————–

Vor ein paar Wochen habe ich die Platin Casino App heruntergeladen und ich muss sagen, ich bin begeistert! Die App ist einfach zu bedienen und bietet eine große Auswahl an Spielen. Ich habe vor allem das Blackjack-Spiel genossen, es ist so aufregend, von überall aus zu spielen.

Ich, Anna, 32 Jahre alt, kann die Platin Casino App nur empfehlen. Die Grafik ist klasse, die Auswahl an Spielen ist riesig und der Kundendienst ist immer erreichbar, wenn man ihn braucht.

Möchten Sie das Platin Casino auf Ihrem Smartphone genießen? Dann können Sie die Platin Casino App einfach herunterladen. Hierbei ist es egal, ob Sie ein Android- oder iOS-Gerät besitzen. Sobald die App installiert ist, können Sie auf eine große Auswahl an Online-Casino-Spielen in Deutschland zugreifen.

Die Platin Casino App bietet Ihnen eine bequeme und einfache Möglichkeit, Ihre Lieblingsspiele von überall aus zu spielen. Dabei können Sie sich auf eine sichere und zuverlässige Spielumgebung verlassen. Zudem bietet die App regelmäßige Updates und Verbesserungen, um Ihnen das bestmögliche Spielerlebnis zu bieten.

Um die Platin Casino App herunterzuladen, besuchen Sie einfach den App Store Ihres Geräts und suchen Sie nach “Platin Casino”. Klicken Sie dann auf “Herunterladen” und folgen Sie den Anweisungen auf dem Bildschirm. Sobald die App installiert ist, können Sie sich einfach anmelden und losspielen.

Design and Develop by Ovatheme